[INFO] cloning repository https://github.com/wyq756543431/raudient
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/wyq756543431/raudient" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwyq756543431%2Fraudient", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwyq756543431%2Fraudient'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 4b9cc3b26499121998c592631b13794211372140
[INFO] checking wyq756543431/raudient against try#d1d7143153307f561233bd4d93e2a3b24157b081 for pr-151539-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fwyq756543431%2Fraudient" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/wyq756543431/raudient
[INFO] finished tweaking git repo https://github.com/wyq756543431/raudient
[INFO] tweaked toml for git repo https://github.com/wyq756543431/raudient written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/wyq756543431/raudient on toolchain d1d7143153307f561233bd4d93e2a3b24157b081
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d1d7143153307f561233bd4d93e2a3b24157b081" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/wyq756543431/raudient already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+d1d7143153307f561233bd4d93e2a3b24157b081" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] aaa41ab5c5f4a0af3c700d1564b1b8be6c57afcbaf34d142847aa814291290f2
[INFO] running `Command { std: "docker" "start" "aaa41ab5c5f4a0af3c700d1564b1b8be6c57afcbaf34d142847aa814291290f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "aaa41ab5c5f4a0af3c700d1564b1b8be6c57afcbaf34d142847aa814291290f2" "/opt/rustwide/cargo-home/bin/cargo" "+d1d7143153307f561233bd4d93e2a3b24157b081" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aaa41ab5c5f4a0af3c700d1564b1b8be6c57afcbaf34d142847aa814291290f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "aaa41ab5c5f4a0af3c700d1564b1b8be6c57afcbaf34d142847aa814291290f2" "/opt/rustwide/cargo-home/bin/cargo" "+d1d7143153307f561233bd4d93e2a3b24157b081" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.74
[INFO] [stderr]    Compiling unicode-ident v1.0.12
[INFO] [stderr]    Compiling serde v1.0.193
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling winnow v0.5.31
[INFO] [stderr]    Compiling target-lexicon v0.12.12
[INFO] [stderr]    Compiling smallvec v1.11.2
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling pkg-config v0.3.28
[INFO] [stderr]    Compiling libc v0.2.151
[INFO] [stderr]    Compiling autocfg v1.1.0
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking memchr v2.7.1
[INFO] [stderr]     Checking pin-project-lite v0.2.13
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]     Checking bitflags v2.4.1
[INFO] [stderr]    Compiling thiserror v1.0.55
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]    Compiling semver v1.0.20
[INFO] [stderr]    Compiling gio v0.18.4
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling crossbeam-utils v0.8.18
[INFO] [stderr]     Checking encoding_index_tests v0.1.4
[INFO] [stderr]    Compiling anyhow v1.0.79
[INFO] [stderr]     Checking log v0.4.20
[INFO] [stderr]    Compiling rustix v0.38.28
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling memoffset v0.9.0
[INFO] [stderr]    Compiling num-traits v0.2.17
[INFO] [stderr]     Checking utf8parse v0.2.1
[INFO] [stderr]    Compiling either v1.9.0
[INFO] [stderr]     Checking parking v2.2.0
[INFO] [stderr]     Checking gimli v0.28.1
[INFO] [stderr]     Checking adler v1.0.2
[INFO] [stderr]     Checking linux-raw-sys v0.4.12
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]    Compiling quote v1.0.34
[INFO] [stderr]    Compiling cfg-expr v0.15.5
[INFO] [stderr]     Checking concurrent-queue v2.4.0
[INFO] [stderr]    Compiling indexmap v2.1.0
[INFO] [stderr]     Checking miniz_oxide v0.7.1
[INFO] [stderr]    Compiling syn v2.0.45
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]     Checking event-listener v4.0.2
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]     Checking anstyle-parse v0.2.3
[INFO] [stderr]     Checking getrandom v0.2.11
[INFO] [stderr]     Checking object v0.32.2
[INFO] [stderr]     Checking anstyle v1.0.4
[INFO] [stderr]     Checking anstyle-query v1.0.2
[INFO] [stderr]     Checking rustc-demangle v0.1.23
[INFO] [stderr]     Checking colorchoice v1.0.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking anstream v0.6.5
[INFO] [stderr]     Checking uuid v1.6.1
[INFO] [stderr]     Checking event-listener-strategy v0.4.0
[INFO] [stderr]     Checking encoding-index-simpchinese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-japanese v1.20141219.5
[INFO] [stderr]     Checking encoding-index-korean v1.20141219.5
[INFO] [stderr]     Checking encoding-index-singlebyte v1.20141219.5
[INFO] [stderr]     Checking encoding-index-tradchinese v1.20141219.5
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]     Checking is-terminal v0.4.10
[INFO] [stderr]     Checking match_cfg v0.1.0
[INFO] [stderr]     Checking bytes v1.5.0
[INFO] [stderr]     Checking iana-time-zone v0.1.59
[INFO] [stderr]     Checking termcolor v1.4.0
[INFO] [stderr]     Checking hostname v0.3.1
[INFO] [stderr]     Checking async-channel v2.1.1
[INFO] [stderr]     Checking crossbeam-channel v0.5.10
[INFO] [stderr]     Checking regex-automata v0.4.3
[INFO] [stderr]     Checking encoding v0.2.33
[INFO] [stderr]    Compiling backtrace v0.3.69
[INFO] [stderr]     Checking combine v4.6.6
[INFO] [stderr]     Checking chrono v0.4.31
[INFO] [stderr]     Checking addr2line v0.21.0
[INFO] [stderr]     Checking regex v1.10.2
[INFO] [stderr]     Checking env_logger v0.10.1
[INFO] [stderr]    Compiling serde_derive v1.0.193
[INFO] [stderr]    Compiling thiserror-impl v1.0.55
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking toml_datetime v0.6.3
[INFO] [stderr]     Checking serde_spanned v0.6.5
[INFO] [stderr]     Checking os_info v3.7.0
[INFO] [stderr]     Checking toml_edit v0.19.15
[INFO] [stderr]    Compiling neli-proc-macros v0.1.3
[INFO] [stderr]    Compiling toml_edit v0.20.2
[INFO] [stderr]     Checking neli v0.6.4
[INFO] [stderr]     Checking toml v0.7.8
[INFO] [stderr]     Checking human-panic v1.2.1
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]     Checking local-ip-address v0.5.6
[INFO] [stderr]    Compiling gtk4-macros v0.7.2
[INFO] [stderr]    Compiling toml v0.8.2
[INFO] [stderr]    Compiling proc-macro-crate v2.0.1
[INFO] [stderr]    Compiling system-deps v6.2.0
[INFO] [stderr]    Compiling glib-macros v0.18.5
[INFO] [stderr]    Compiling glib-sys v0.18.1
[INFO] [stderr]    Compiling gobject-sys v0.18.0
[INFO] [stderr]    Compiling gio-sys v0.18.1
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.18.0
[INFO] [stderr]    Compiling pango-sys v0.18.0
[INFO] [stderr]    Compiling cairo-sys-rs v0.18.2
[INFO] [stderr]    Compiling graphene-sys v0.18.1
[INFO] [stderr]    Compiling gdk4-sys v0.7.2
[INFO] [stderr]    Compiling gsk4-sys v0.7.3
[INFO] [stderr]    Compiling gtk4-sys v0.7.3
[INFO] [stderr]    Compiling libadwaita-sys v0.5.3
[INFO] [stderr]     Checking glib v0.18.5
[INFO] [stderr]     Checking cairo-rs v0.18.5
[INFO] [stderr]     Checking graphene-rs v0.18.1
[INFO] [stderr]     Checking pango v0.18.3
[INFO] [stderr]     Checking gdk-pixbuf v0.18.5
[INFO] [stderr]     Checking gdk4 v0.7.3
[INFO] [stderr]     Checking gsk4 v0.7.3
[INFO] [stderr]     Checking gtk4 v0.7.3
[INFO] [stderr]     Checking libadwaita v0.5.3
[INFO] [stderr]     Checking ipmsg-rs v0.7.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/events/model.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |         ///扩展段 用户名|用户组
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 180 |         let ext_vec = extstr.splitn(2, |c| c == ':').collect::<Vec<&str>>();
[INFO] [stdout]     |         -------------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/core/download.rs:95:62
[INFO] [stdout]    |
[INFO] [stdout] 95 | ...   let header_context_str = read_bytes(&mut buffer, (header_size - 1 - header_size_str.as_bytes().len() as u64))?;//-1是减去的那...
[INFO] [stdout]    |                                                        ^                                                         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 95 -             let header_context_str = read_bytes(&mut buffer, (header_size - 1 - header_size_str.as_bytes().len() as u64))?;//-1是减去的那个冒号
[INFO] [stdout] 95 +             let header_context_str = read_bytes(&mut buffer, header_size - 1 - header_size_str.as_bytes().len() as u64 )?;//-1是减去的那个冒号
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     setup_panic!();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `$crate::setup_panic` which comes from the expansion of the macro `setup_panic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     setup_panic!();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `$crate::setup_panic` which comes from the expansion of the macro `setup_panic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/events/model.rs:179:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |         ///扩展段 用户名|用户组
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 180 |         let ext_vec = extstr.splitn(2, |c| c == ':').collect::<Vec<&str>>();
[INFO] [stdout]     |         -------------------------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/core/download.rs:95:62
[INFO] [stdout]    |
[INFO] [stdout] 95 | ...   let header_context_str = read_bytes(&mut buffer, (header_size - 1 - header_size_str.as_bytes().len() as u64))?;//-1是减去的那...
[INFO] [stdout]    |                                                        ^                                                         ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 95 -             let header_context_str = read_bytes(&mut buffer, (header_size - 1 - header_size_str.as_bytes().len() as u64))?;//-1是减去的那个冒号
[INFO] [stdout] 95 +             let header_context_str = read_bytes(&mut buffer, header_size - 1 - header_size_str.as_bytes().len() as u64 )?;//-1是减去的那个冒号
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     setup_panic!();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `$crate::setup_panic` which comes from the expansion of the macro `setup_panic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated type alias `std::panic::PanicInfo`: use `PanicHookInfo` instead
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 |     setup_panic!();
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `$crate::setup_panic` which comes from the expansion of the macro `setup_panic` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `from_timestamp_opt()` instead
[INFO] [stdout]    --> src/events/model.rs:227:52
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         let ntime = NaiveDateTime::from_timestamp(mmtime_num, 0);
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `chrono::NaiveDateTime::from_timestamp`: use `from_timestamp_opt()` instead
[INFO] [stdout]    --> src/events/model.rs:227:52
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         let ntime = NaiveDateTime::from_timestamp(mmtime_num, 0);
[INFO] [stdout]     |                                                    ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/models/message.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 |     for (i, file) in files.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/util.rs:37:23
[INFO] [stdout]    |
[INFO] [stdout] 37 |         many(satisfy(|c| true)),
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/models/message.rs:22:10
[INFO] [stdout]    |
[INFO] [stdout] 22 |     for (i, file) in files.iter().enumerate() {
[INFO] [stdout]    |          ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `c`
[INFO] [stdout]   --> src/util.rs:37:23
[INFO] [stdout]    |
[INFO] [stdout] 37 |         many(satisfy(|c| true)),
[INFO] [stdout]    |                       ^ help: if this is intentional, prefix it with an underscore: `_c`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg_str`
[INFO] [stdout]    --> src/events/model.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let msg_str = if ext_vec.len() > 0 { ext_vec[0] } else { "" };
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ntime`
[INFO] [stdout]    --> src/events/model.rs:227:29
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         let ntime = NaiveDateTime::from_timestamp(mmtime_num, 0);
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_ntime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `msg_str`
[INFO] [stdout]    --> src/events/model.rs:206:13
[INFO] [stdout]     |
[INFO] [stdout] 206 |         let msg_str = if ext_vec.len() > 0 { ext_vec[0] } else { "" };
[INFO] [stdout]     |             ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_msg_str`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ntime`
[INFO] [stdout]    --> src/events/model.rs:227:29
[INFO] [stdout]     |
[INFO] [stdout] 227 |                         let ntime = NaiveDateTime::from_timestamp(mmtime_num, 0);
[INFO] [stdout]     |                             ^^^^^ help: if this is intentional, prefix it with an underscore: `_ntime`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ui/chat_window.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let (start_iter, mut end_iter) = text_view_presend.buffer().bounds();
[INFO] [stdout]    |                          ----^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/ui/chat_window.rs:74:26
[INFO] [stdout]    |
[INFO] [stdout] 74 |         let (start_iter, mut end_iter) = text_view_presend.buffer().bounds();
[INFO] [stdout]    |                          ----^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_time`
[INFO] [stdout]    --> src/ui/chat_window.rs:204:25
[INFO] [stdout]     |
[INFO] [stdout] 204 |                     let local_time = chrono_time.with_timezone(&::chrono::Local);
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_time`
[INFO] [stdout]    --> src/ui/chat_window.rs:155:21
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let local_time = chrono_time.with_timezone(&::chrono::Local);
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tree_path`
[INFO] [stdout]   --> src/ui/chat_window.rs:84:118
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...ip => move |tree_view, tree_path, tree_view_column| {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tree_view_column`
[INFO] [stdout]   --> src/ui/chat_window.rs:84:129
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...iew, tree_path, tree_view_column| {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_time`
[INFO] [stdout]    --> src/ui/chat_window.rs:204:25
[INFO] [stdout]     |
[INFO] [stdout] 204 |                     let local_time = chrono_time.with_timezone(&::chrono::Local);
[INFO] [stdout]     |                         ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text_view_history_clone`
[INFO] [stdout]   --> src/ui/chat_window.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let text_view_history_clone = text_view_history.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_view_history_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `local_time`
[INFO] [stdout]    --> src/ui/chat_window.rs:155:21
[INFO] [stdout]     |
[INFO] [stdout] 155 |                 let local_time = chrono_time.with_timezone(&::chrono::Local);
[INFO] [stdout]     |                     ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_local_time`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chat_window_open_file`
[INFO] [stdout]    --> src/ui/chat_window.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let chat_window_open_file = chat_window.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_window_open_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chat_window_open_dir`
[INFO] [stdout]    --> src/ui/chat_window.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |     let chat_window_open_dir = chat_window.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_window_open_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pre_send_files_open_dir`
[INFO] [stdout]    --> src/ui/chat_window.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let pre_send_files_open_dir = pre_send_files.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pre_send_files_open_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tree_path`
[INFO] [stdout]   --> src/ui/chat_window.rs:84:118
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...ip => move |tree_view, tree_path, tree_view_column| {
[INFO] [stdout]    |                           ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tree_view_column`
[INFO] [stdout]   --> src/ui/chat_window.rs:84:129
[INFO] [stdout]    |
[INFO] [stdout] 84 | ...iew, tree_path, tree_view_column| {
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text_view_history_clone`
[INFO] [stdout]   --> src/ui/chat_window.rs:64:9
[INFO] [stdout]    |
[INFO] [stdout] 64 |     let text_view_history_clone = text_view_history.clone();
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_text_view_history_clone`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chat_window_open_file`
[INFO] [stdout]    --> src/ui/chat_window.rs:126:9
[INFO] [stdout]     |
[INFO] [stdout] 126 |     let chat_window_open_file = chat_window.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_window_open_file`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `chat_window_open_dir`
[INFO] [stdout]    --> src/ui/chat_window.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |     let chat_window_open_dir = chat_window.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_chat_window_open_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `pre_send_files_open_dir`
[INFO] [stdout]    --> src/ui/chat_window.rs:178:9
[INFO] [stdout]     |
[INFO] [stdout] 178 |     let pre_send_files_open_dir = pre_send_files.clone();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_pre_send_files_open_dir`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/ui/main_win.rs:221:21
[INFO] [stdout]     |
[INFO] [stdout] 221 |                     _ => {
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/ui/main_win.rs:221:21
[INFO] [stdout]     |
[INFO] [stdout]  88 |                     UiEvent::OpenOrReOpenChatWindow { name, ip } => {
[INFO] [stdout]     |                     -------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  98 |                     UiEvent::UpdateUserListFooterStatus(text) => {
[INFO] [stdout]     |                     ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 101 |                     UiEvent::UserListRemoveOne(ip) => {
[INFO] [stdout]     |                     ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 123 |                     UiEvent::UserListAddOne(income_user) => {
[INFO] [stdout]     |                     ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 221 |                     _ => {
[INFO] [stdout]     |                     ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/ui/main_win.rs:221:21
[INFO] [stdout]     |
[INFO] [stdout] 221 |                     _ => {
[INFO] [stdout]     |                     ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/ui/main_win.rs:221:21
[INFO] [stdout]     |
[INFO] [stdout]  88 |                     UiEvent::OpenOrReOpenChatWindow { name, ip } => {
[INFO] [stdout]     |                     -------------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout]  98 |                     UiEvent::UpdateUserListFooterStatus(text) => {
[INFO] [stdout]     |                     ----------------------------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 101 |                     UiEvent::UserListRemoveOne(ip) => {
[INFO] [stdout]     |                     ------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 123 |                     UiEvent::UserListAddOne(income_user) => {
[INFO] [stdout]     |                     ------------------------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 221 |                     _ => {
[INFO] [stdout]     |                     ^ ...and 5 other patterns collectively make this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]   --> src/ui/main_win.rs:91:34
[INFO] [stdout]    |
[INFO] [stdout] 91 | ...                   Some(win) => {}
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]    --> src/ui/main_win.rs:151:37
[INFO] [stdout]     |
[INFO] [stdout] 151 |                         if let Some(win) = chat_windows.get(&ip) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/ui/main_win.rs:155:66
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     UiEvent::OpenOrReOpenChatWindow1 { name, ip, packet } => {
[INFO] [stdout]     |                                                                  ^^^^^^ help: try ignoring the field: `packet: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `files`
[INFO] [stdout]    --> src/ui/main_win.rs:168:72
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     UiEvent::DisplaySelfSendMsgInHis { to_ip, context, files } => {
[INFO] [stdout]     |                                                                        ^^^^^ help: try ignoring the field: `files: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `his_start_iter`
[INFO] [stdout]    --> src/ui/main_win.rs:171:38
[INFO] [stdout]     |
[INFO] [stdout] 171 | ...                   let (his_start_iter, mut his_end_iter) = win.his_view.buffer().bounds();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `his_start_iter`
[INFO] [stdout]    --> src/ui/main_win.rs:180:38
[INFO] [stdout]     |
[INFO] [stdout] 180 | ...                   let (his_start_iter, mut his_end_iter) = win.his_view.buffer().bounds();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tree_path`
[INFO] [stdout]   --> src/ui/main_win.rs:66:53
[INFO] [stdout]    |
[INFO] [stdout] 66 |         tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| {
[INFO] [stdout]    |                                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]   --> src/ui/main_win.rs:91:34
[INFO] [stdout]    |
[INFO] [stdout] 91 | ...                   Some(win) => {}
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `win`
[INFO] [stdout]    --> src/ui/main_win.rs:151:37
[INFO] [stdout]     |
[INFO] [stdout] 151 |                         if let Some(win) = chat_windows.get(&ip) {
[INFO] [stdout]     |                                     ^^^ help: if this is intentional, prefix it with an underscore: `_win`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `packet`
[INFO] [stdout]    --> src/ui/main_win.rs:155:66
[INFO] [stdout]     |
[INFO] [stdout] 155 |                     UiEvent::OpenOrReOpenChatWindow1 { name, ip, packet } => {
[INFO] [stdout]     |                                                                  ^^^^^^ help: try ignoring the field: `packet: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `files`
[INFO] [stdout]    --> src/ui/main_win.rs:168:72
[INFO] [stdout]     |
[INFO] [stdout] 168 |                     UiEvent::DisplaySelfSendMsgInHis { to_ip, context, files } => {
[INFO] [stdout]     |                                                                        ^^^^^ help: try ignoring the field: `files: _`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `his_start_iter`
[INFO] [stdout]    --> src/ui/main_win.rs:171:38
[INFO] [stdout]     |
[INFO] [stdout] 171 | ...                   let (his_start_iter, mut his_end_iter) = win.his_view.buffer().bounds();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `his_start_iter`
[INFO] [stdout]    --> src/ui/main_win.rs:180:38
[INFO] [stdout]     |
[INFO] [stdout] 180 | ...                   let (his_start_iter, mut his_end_iter) = win.his_view.buffer().bounds();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_his_start_iter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tree_path`
[INFO] [stdout]   --> src/ui/main_win.rs:66:53
[INFO] [stdout]    |
[INFO] [stdout] 66 |         tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| {
[INFO] [stdout]    |                                                     ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tree_view_column`
[INFO] [stdout]   --> src/ui/main_win.rs:66:64
[INFO] [stdout]    |
[INFO] [stdout] 66 |         tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `tree_view_column`
[INFO] [stdout]   --> src/ui/main_win.rs:66:64
[INFO] [stdout]    |
[INFO] [stdout] 66 |         tree.connect_row_activated(move |tree_view, tree_path, tree_view_column| {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_tree_view_column`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/core/download.rs:30:16
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn run(mut self, file_info: ReceivedSimpleFileInfo, save_path: PathBuf, download_ip: String) {
[INFO] [stdout]    |                ----^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/core/download.rs:30:16
[INFO] [stdout]    |
[INFO] [stdout] 30 |     pub fn run(mut self, file_info: ReceivedSimpleFileInfo, save_path: PathBuf, download_ip: String) {
[INFO] [stdout]    |                ----^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opt`
[INFO] [stdout]    --> src/core/download.rs:100:17
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let opt = protocol::get_opt(file_attr);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_opt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/download.rs:126:19
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn read_delimiter(mut stream : & mut BufReader<TcpStream>) -> Result<Option<String>> {
[INFO] [stdout]     |                   ----^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `opt`
[INFO] [stdout]    --> src/core/download.rs:100:17
[INFO] [stdout]     |
[INFO] [stdout] 100 |             let opt = protocol::get_opt(file_attr);
[INFO] [stdout]     |                 ^^^ help: if this is intentional, prefix it with an underscore: `_opt`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/download.rs:141:15
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn read_bytes(mut stream : & mut BufReader<TcpStream>, len: u64) -> Result<String> {
[INFO] [stdout]     |               ----^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/download.rs:126:19
[INFO] [stdout]     |
[INFO] [stdout] 126 | fn read_delimiter(mut stream : & mut BufReader<TcpStream>) -> Result<Option<String>> {
[INFO] [stdout]     |                   ----^^^^^^
[INFO] [stdout]     |                   |
[INFO] [stdout]     |                   help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/download.rs:148:23
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn read_bytes_to_file(mut stream : & mut BufReader<TcpStream>, len: u64, file_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |                       ----^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/download.rs:141:15
[INFO] [stdout]     |
[INFO] [stdout] 141 | fn read_bytes(mut stream : & mut BufReader<TcpStream>, len: u64) -> Result<String> {
[INFO] [stdout]     |               ----^^^^^^
[INFO] [stdout]     |               |
[INFO] [stdout]     |               help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/download.rs:164:30
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader<TcpStream>, file_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |                              ----^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/download.rs:148:23
[INFO] [stdout]     |
[INFO] [stdout] 148 | fn read_bytes_to_file(mut stream : & mut BufReader<TcpStream>, len: u64, file_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |                       ----^^^^^^
[INFO] [stdout]     |                       |
[INFO] [stdout]     |                       help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/download.rs:164:30
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader<TcpStream>, file_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |                              ----^^^^^^
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/core/fileserver.rs:46:25
[INFO] [stdout]    |
[INFO] [stdout] 46 |                     let mut tmp_buf = &buf[0..byte_size];
[INFO] [stdout]    |                         ----^^^^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/core/fileserver.rs:46:25
[INFO] [stdout]    |
[INFO] [stdout] 46 |                     let mut tmp_buf = &buf[0..byte_size];
[INFO] [stdout]    |                         ----^^^^^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/core/fileserver.rs:76:58
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn process_dir(pool_tmp: Arc<Mutex<Vec<ShareInfo>>>, mut stream_echo: TcpStream, ext_str: String) -> () {
[INFO] [stdout]    |                                                          ----^^^^^^^^^^^
[INFO] [stdout]    |                                                          |
[INFO] [stdout]    |                                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `search_result` is never read
[INFO] [stdout]   --> src/core/fileserver.rs:82:56
[INFO] [stdout]    |
[INFO] [stdout] 82 |             let mut search_result: Option<ShareInfo> = Option::None;
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 87 |                 search_result = result.cloned();
[INFO] [stdout]    |                 ------------- `search_result` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/fileserver.rs:100:60
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn process_file(pool_tmp: &Arc<Mutex<Vec<ShareInfo>>>, mut stream_echo: &mut TcpStream, ext_str: String) -> () {
[INFO] [stdout]     |                                                            ----^^^^^^^^^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/core/fileserver.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let offset = file_attr[2].parse::<u32>().unwrap();
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `search_result` is never read
[INFO] [stdout]    --> src/core/fileserver.rs:107:56
[INFO] [stdout]     |
[INFO] [stdout] 107 |             let mut search_result: Option<ShareInfo> = Option::None;
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 112 |                 search_result = result.cloned();
[INFO] [stdout]     |                 ------------- `search_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/core/fileserver.rs:76:58
[INFO] [stdout]    |
[INFO] [stdout] 76 |     fn process_dir(pool_tmp: Arc<Mutex<Vec<ShareInfo>>>, mut stream_echo: TcpStream, ext_str: String) -> () {
[INFO] [stdout]    |                                                          ----^^^^^^^^^^^
[INFO] [stdout]    |                                                          |
[INFO] [stdout]    |                                                          help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `search_result` is never read
[INFO] [stdout]   --> src/core/fileserver.rs:82:56
[INFO] [stdout]    |
[INFO] [stdout] 82 |             let mut search_result: Option<ShareInfo> = Option::None;
[INFO] [stdout]    |                                                        ^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 87 |                 search_result = result.cloned();
[INFO] [stdout]    |                 ------------- `search_result` is overwritten here before the previous value is read
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/core/fileserver.rs:100:60
[INFO] [stdout]     |
[INFO] [stdout] 100 |     fn process_file(pool_tmp: &Arc<Mutex<Vec<ShareInfo>>>, mut stream_echo: &mut TcpStream, ext_str: String) -> () {
[INFO] [stdout]     |                                                            ----^^^^^^^^^^^
[INFO] [stdout]     |                                                            |
[INFO] [stdout]     |                                                            help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `offset`
[INFO] [stdout]    --> src/core/fileserver.rs:106:17
[INFO] [stdout]     |
[INFO] [stdout] 106 |             let offset = file_attr[2].parse::<u32>().unwrap();
[INFO] [stdout]     |                 ^^^^^^ help: if this is intentional, prefix it with an underscore: `_offset`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `search_result` is never read
[INFO] [stdout]    --> src/core/fileserver.rs:107:56
[INFO] [stdout]     |
[INFO] [stdout] 107 |             let mut search_result: Option<ShareInfo> = Option::None;
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^ this value is reassigned later and never used
[INFO] [stdout] ...
[INFO] [stdout] 112 |                 search_result = result.cloned();
[INFO] [stdout]     |                 ------------- `search_result` is overwritten here before the previous value is read
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PutInTcpFilePool` is never constructed
[INFO] [stdout]   --> src/models/event.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum ModelEvent {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 31 |     PutInTcpFilePool(),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ExtStr` is never used
[INFO] [stdout]   --> src/models/model.rs:25:6
[INFO] [stdout]    |
[INFO] [stdout] 25 | type ExtStr = String;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExtMsg` is never used
[INFO] [stdout]   --> src/models/model.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | trait ExtMsg {
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PacketBuilder` is never constructed
[INFO] [stdout]   --> src/models/model.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PacketBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `command` and `command_opt` are never used
[INFO] [stdout]   --> src/models/model.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl PacketBuilder {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 48 |     ///命令
[INFO] [stdout] 49 |     fn command(command_no: u32) -> PacketBuilder {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn command_opt(mut self, ext_command_no: u32) -> PacketBuilder {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operate` is never used
[INFO] [stdout]    --> src/models/model.rs:147:10
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub enum Operate {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OperUser` is never constructed
[INFO] [stdout]    --> src/models/model.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct OperUser{
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/models/model.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl OperUser {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 158 |     pub fn new(user: User, oper :Operate) -> OperUser{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `host`, `host_cnt`, `file_cnt`, and `attach_time` are never read
[INFO] [stdout]    --> src/models/model.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub struct ShareInfo {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub host: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 172 |     // 要发送的目的机器个数
[INFO] [stdout] 173 |     pub host_cnt: u32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub file_cnt: u32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 179 |     //文件添加时间
[INFO] [stdout] 180 |     pub attach_time: NaiveTime,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ShareInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `atime`, and `crtime` are never read
[INFO] [stdout]    --> src/models/model.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub struct FileInfo {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub atime: NaiveTime,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 198 |     //文件创建时间
[INFO] [stdout] 199 |     pub crtime: NaiveTime
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FileInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `opt_files` is never used
[INFO] [stdout]    --> src/models/model.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | impl ReceivedPacketInner {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn opt_files(mut self, opt_files: Vec<ReceivedSimpleFileInfo>) -> ReceivedPacketInner {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrMsg` is never constructed
[INFO] [stdout]    --> src/models/model.rs:258:12
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct ErrMsg {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ip` and `pre_send_files` are never read
[INFO] [stdout]   --> src/ui/chat_window.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ChatWindow {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub ip :String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 28 |     pub pre_send_files :Arc<RefCell<Vec<model::FileInfo>>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatWindow` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_bytes_to_file_unsize` is never used
[INFO] [stdout]    --> src/core/download.rs:164:4
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader<TcpStream>, file_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/events/model.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |         GLOBLE_SENDER.send(ModelEvent::RecMsgReply{packet: recvmsg, from_ip: (&packet).ip.to_owned()});
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let _ = GLOBLE_SENDER.send(ModelEvent::RecMsgReply{packet: recvmsg, from_ip: (&packet).ip.to_owned()});
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/events/model.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |         GLOBLE_SENDER.send(ModelEvent::BroadcastExit((&packet).sender_host.to_owned()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 177 |         let _ = GLOBLE_SENDER.send(ModelEvent::BroadcastExit((&packet).sender_host.to_owned()));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/events/model.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 196 |         GLOBLE_SENDER.send(ModelEvent::RecOnlineMsgReply{packet: ansentry_packet, from_user: user});
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let _ = GLOBLE_SENDER.send(ModelEvent::RecOnlineMsgReply{packet: ansentry_packet, from_user: user});
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/events/model.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         GLOBLE_SENDER.send(ModelEvent::NotifyOnline{user});
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let _ = GLOBLE_SENDER.send(ModelEvent::NotifyOnline{user});
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ui/chat_window.rs:107:21
[INFO] [stdout]     |
[INFO] [stdout] 107 | /                     GLOBLE_SENDER.send(ModelEvent::PutDownloadTaskInPool{ file: ReceivedSimpleFileInfo{
[INFO] [stdout] 108 | |                         file_id: fid,
[INFO] [stdout] 109 | |                         packet_id: pid,
[INFO] [stdout] 110 | |                         name: name.clone(),
[INFO] [stdout] ...   |
[INFO] [stdout] 113 | |                         mtime
[INFO] [stdout] 114 | |                     }, save_base_path, download_ip: host_ip.clone() });
[INFO] [stdout]     | |______________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |                     let _ = GLOBLE_SENDER.send(ModelEvent::PutDownloadTaskInPool{ file: ReceivedSimpleFileInfo{
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/fileserver.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |         path_metadata.created();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let _ = path_metadata.created();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/fileserver.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 |         path_metadata.modified();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let _ = path_metadata.modified();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `PutInTcpFilePool` is never constructed
[INFO] [stdout]   --> src/models/event.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub enum ModelEvent {
[INFO] [stdout]    |          ---------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 31 |     PutInTcpFilePool(),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type alias `ExtStr` is never used
[INFO] [stdout]   --> src/models/model.rs:25:6
[INFO] [stdout]    |
[INFO] [stdout] 25 | type ExtStr = String;
[INFO] [stdout]    |      ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait `ExtMsg` is never used
[INFO] [stdout]   --> src/models/model.rs:27:7
[INFO] [stdout]    |
[INFO] [stdout] 27 | trait ExtMsg {
[INFO] [stdout]    |       ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PacketBuilder` is never constructed
[INFO] [stdout]   --> src/models/model.rs:32:12
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub struct PacketBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `command` and `command_opt` are never used
[INFO] [stdout]   --> src/models/model.rs:49:8
[INFO] [stdout]    |
[INFO] [stdout] 47 | impl PacketBuilder {
[INFO] [stdout]    | ------------------ associated items in this implementation
[INFO] [stdout] 48 |     ///命令
[INFO] [stdout] 49 |     fn command(command_no: u32) -> PacketBuilder {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     fn command_opt(mut self, ext_command_no: u32) -> PacketBuilder {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Operate` is never used
[INFO] [stdout]    --> src/models/model.rs:147:10
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub enum Operate {
[INFO] [stdout]     |          ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OperUser` is never constructed
[INFO] [stdout]    --> src/models/model.rs:152:12
[INFO] [stdout]     |
[INFO] [stdout] 152 | pub struct OperUser{
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/models/model.rs:158:12
[INFO] [stdout]     |
[INFO] [stdout] 157 | impl OperUser {
[INFO] [stdout]     | ------------- associated function in this implementation
[INFO] [stdout] 158 |     pub fn new(user: User, oper :Operate) -> OperUser{
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `host`, `host_cnt`, `file_cnt`, and `attach_time` are never read
[INFO] [stdout]    --> src/models/model.rs:171:9
[INFO] [stdout]     |
[INFO] [stdout] 167 | pub struct ShareInfo {
[INFO] [stdout]     |            --------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 171 |     pub host: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] 172 |     // 要发送的目的机器个数
[INFO] [stdout] 173 |     pub host_cnt: u32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub file_cnt: u32,
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 179 |     //文件添加时间
[INFO] [stdout] 180 |     pub attach_time: NaiveTime,
[INFO] [stdout]     |         ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ShareInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name`, `atime`, and `crtime` are never read
[INFO] [stdout]    --> src/models/model.rs:189:9
[INFO] [stdout]     |
[INFO] [stdout] 184 | pub struct FileInfo {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 197 |     pub atime: NaiveTime,
[INFO] [stdout]     |         ^^^^^
[INFO] [stdout] 198 |     //文件创建时间
[INFO] [stdout] 199 |     pub crtime: NaiveTime
[INFO] [stdout]     |         ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `FileInfo` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `opt_files` is never used
[INFO] [stdout]    --> src/models/model.rs:247:12
[INFO] [stdout]     |
[INFO] [stdout] 233 | impl ReceivedPacketInner {
[INFO] [stdout]     | ------------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 247 |     pub fn opt_files(mut self, opt_files: Vec<ReceivedSimpleFileInfo>) -> ReceivedPacketInner {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ErrMsg` is never constructed
[INFO] [stdout]    --> src/models/model.rs:258:12
[INFO] [stdout]     |
[INFO] [stdout] 258 | pub struct ErrMsg {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `ip` and `pre_send_files` are never read
[INFO] [stdout]   --> src/ui/chat_window.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ChatWindow {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub ip :String,
[INFO] [stdout]    |         ^^
[INFO] [stdout] 28 |     pub pre_send_files :Arc<RefCell<Vec<model::FileInfo>>>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatWindow` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `read_bytes_to_file_unsize` is never used
[INFO] [stdout]    --> src/core/download.rs:164:4
[INFO] [stdout]     |
[INFO] [stdout] 164 | fn read_bytes_to_file_unsize(mut stream : & mut BufReader<TcpStream>, file_path: &PathBuf) -> Result<()> {
[INFO] [stdout]     |    ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/events/model.rs:174:9
[INFO] [stdout]     |
[INFO] [stdout] 174 |         GLOBLE_SENDER.send(ModelEvent::RecMsgReply{packet: recvmsg, from_ip: (&packet).ip.to_owned()});
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 174 |         let _ = GLOBLE_SENDER.send(ModelEvent::RecMsgReply{packet: recvmsg, from_ip: (&packet).ip.to_owned()});
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/events/model.rs:177:9
[INFO] [stdout]     |
[INFO] [stdout] 177 |         GLOBLE_SENDER.send(ModelEvent::BroadcastExit((&packet).sender_host.to_owned()));
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 177 |         let _ = GLOBLE_SENDER.send(ModelEvent::BroadcastExit((&packet).sender_host.to_owned()));
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/events/model.rs:196:9
[INFO] [stdout]     |
[INFO] [stdout] 196 |         GLOBLE_SENDER.send(ModelEvent::RecOnlineMsgReply{packet: ansentry_packet, from_user: user});
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 196 |         let _ = GLOBLE_SENDER.send(ModelEvent::RecOnlineMsgReply{packet: ansentry_packet, from_user: user});
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/events/model.rs:199:9
[INFO] [stdout]     |
[INFO] [stdout] 199 |         GLOBLE_SENDER.send(ModelEvent::NotifyOnline{user});
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 199 |         let _ = GLOBLE_SENDER.send(ModelEvent::NotifyOnline{user});
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ui/chat_window.rs:107:21
[INFO] [stdout]     |
[INFO] [stdout] 107 | /                     GLOBLE_SENDER.send(ModelEvent::PutDownloadTaskInPool{ file: ReceivedSimpleFileInfo{
[INFO] [stdout] 108 | |                         file_id: fid,
[INFO] [stdout] 109 | |                         packet_id: pid,
[INFO] [stdout] 110 | |                         name: name.clone(),
[INFO] [stdout] ...   |
[INFO] [stdout] 113 | |                         mtime
[INFO] [stdout] 114 | |                     }, save_base_path, download_ip: host_ip.clone() });
[INFO] [stdout]     | |______________________________________________________________________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 107 |                     let _ = GLOBLE_SENDER.send(ModelEvent::PutDownloadTaskInPool{ file: ReceivedSimpleFileInfo{
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/fileserver.rs:182:9
[INFO] [stdout]     |
[INFO] [stdout] 182 |         path_metadata.created();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 182 |         let _ = path_metadata.created();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/core/fileserver.rs:183:9
[INFO] [stdout]     |
[INFO] [stdout] 183 |         path_metadata.modified();
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 183 |         let _ = path_metadata.modified();
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 49s
[INFO] running `Command { std: "docker" "inspect" "aaa41ab5c5f4a0af3c700d1564b1b8be6c57afcbaf34d142847aa814291290f2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aaa41ab5c5f4a0af3c700d1564b1b8be6c57afcbaf34d142847aa814291290f2", kill_on_drop: false }`
[INFO] [stdout] aaa41ab5c5f4a0af3c700d1564b1b8be6c57afcbaf34d142847aa814291290f2
